#ifndef DUALSENDRELAYHANDLERBASE_H
#define DUALSENDRELAYHANDLERBASE_H

#include "ITransHandler.h"
#include "Log.h"

class DualSendRelayHandlerBase abstract:public ITransHandler
{
public:
	DualSendRelayHandlerBase():ITransHandler(){}

	~DualSendRelayHandlerBase(){}

	virtual ExecuteResultCode Execute(ClientContext&,OVERLAPPED*);

protected:
	virtual void GetSendRecvInfo(ClientContext &client,SOCKET *sendSock,SOCKET *recvSock,WSABUF **buf,WSABUF **weakRefBuf,OVERLAPPED **ovl) abstract;

	virtual void SetNextHandler(ClientContext&) abstract;

private:
	static log4cplus::Logger log;
};

#endif